Unable to evaluate the expression Method threw ‘org.hibernate.LazyInitializationException‘ exceptio

您所在的位置:网站首页 drools dialect Unable to evaluate the expression Method threw ‘org.hibernate.LazyInitializationException‘ exceptio

Unable to evaluate the expression Method threw ‘org.hibernate.LazyInitializationException‘ exceptio

2023-06-12 20:06| 来源: 网络整理| 查看: 265

背景

Unable to evaluate the expression Method threw ‘org.hibernate.LazyInitializationException’ exception.如何解决?????

使用hibernate从一方获取多方信息的时候发生 这个异常与hibernate加载关联对象的2种方式有关,一个是懒加载方式,一个是立即加载方式.

在这里插入图片描述

方案 步骤1、

一个颗粒会有多个选项 一个颗粒聚合多个选项的时候加上注解 在这里插入图片描述

@OneToMany(mappedBy = "contentGrain", cascade = CascadeType.ALL,fetch = FetchType.EAGER, orphanRemoval = true) private List option ; @Entity private static class Option { public Option(){}; }

@OneToMany: 表示一个实体类的一个属性与另一个实体类的多个实例关联。 mappedBy = “contentGrain”: 指定了另一个实体类中与当前属性关联的属性名,也就是当前实体类所拥有的外键属性的名称。这里的 “contentGrain” 是另一个实体类中的属性名。 cascade = CascadeType.ALL: 表示级联操作,当对当前实体类进行增删改操作时,会同时对关联的另一个实体类进行相应的操作,例如删除当前实体类的同时,也会删除关联的另一个实体类。 fetch = FetchType.EAGER: 表示在加载当前实体类时,同时也会加载关联的另一个实体类。(没有写这个是造成没有及时加载的原因) orphanRemoval = true: 表示如果另一个实体类与当前实体类的关系断开,另一个实体类是否应该自动删除。如果设置为 true,表示应该自动删除;如果设置为 false,表示不应该自动删除。

步骤2:

多的中的外键(对应的是颗粒主键)上的注解:

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

// 外键,指向外部类 @ManyToOne // @JoinColumn(name = "outer_id") @JoinColumn(name = "outer_id",referencedColumnName = "id") private ContentGrain contentGrain; 总结

乱用注解者亡



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3